//
//  LLProgressHUD.h
//  ChatTool
//
//  Created by my_liu on 2016/11/5.
//  Copyright © 2016年 storemax. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "LLMBProgressHUD.h"

static CGFloat const sleepForTimeInterval = 1.5; //延时时间
static CGFloat const offsetForDirectionY = -20.0f; //y轴偏移

typedef NS_ENUM(NSInteger, LLProgressHUDStatus) {
    LLProgressHUDStatusFailure = 0,
    LLProgressHUDStatusSuccess = 1,
    LLProgressHUDStatusInfo,
    LLProgressHUDStatusLoading
};

typedef void (^LLProgressHUDCompletionBlock)();

@interface LLProgressHUD : NSObject

@property (nonatomic) LLMBProgressHUD *hud;

+ (LLProgressHUD *)shareLLMBProgressHUD;
/**
 基于MBProgressHUD框架的native展示方式.不自动隐藏.需要主动调用方法,默认为纯文字提示

 @param aView  展示的view
 @param aTitle 提示语
 @param mode   展示样式
 */
- (void)showHudOnView:(UIView*)aView WithTitle:(NSString*)aTitle WithMode:(MBProgressHUDMode)mode;
/**
 延时隐藏提示

 @param timeDelay 延时多久
 */
- (void)hideAfterTimeIntervals:(NSTimeInterval)timeDelay ;
/**
 立即隐藏提示
 */
- (void)hidenImmediatelyHud;
/**
 带有提示图片的加载.根据操作状态,显示不同界面.默认1.5秒后自动隐藏. y轴默认偏离

 @param aView  展示的view
 @param text   提示语
 @param status 操作状态
 */
- (void)showHudOnView:(UIView*)aView text:(NSString *)text progressHUDStatus:(LLProgressHUDStatus)status;

/**
 先显示HUD.之后执行某一方法

 @param aView      展示的view
 @param aTitle     标题
 @param mode       样式
 @param queue      执行线程,默认主线程
 @param completion 完成后的回调
 */
- (void)showHudOnView:(UIView*)aView WithTitle:(NSString*)aTitle WithMode:(MBProgressHUDMode)mode onQueue:(dispatch_queue_t)queue completionBlock:(LLProgressHUDCompletionBlock)completion;

@end
